/**
 * <pre>
 * Title: 		ServiceFactoryImpl.java
 * Author:		linriqing
 * Create:	 	2010-6-29 下午05:39:58
 * Copyright: 	Copyright (c) 2010
 * Company:		Shenzhen Helper
 * <pre>
 */
package com.hengpeng.itfin.service.impl;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;

import com.hengpeng.common.scheduling.SystemJobService;
import com.hengpeng.common.sequence.SequenceService;
import com.hengpeng.itfin.persist.DaoFactory;
import com.hengpeng.itfin.port.PortFactory;
import com.hengpeng.itfin.service.MessageService;
import com.hengpeng.itfin.service.PersistService;
import com.hengpeng.itfin.service.ServiceFactory;
import com.hengpeng.itfin.service.SmsService;
import com.hengpeng.itfin.service.account.AccountService;
import com.hengpeng.itfin.service.activity.ActivityService;
import com.hengpeng.itfin.service.activity.RebateService;
import com.hengpeng.itfin.service.activity.RedPacketService;
import com.hengpeng.itfin.service.ehcache.EhchaceObservableService;
import com.hengpeng.itfin.service.ehcache.EhchaceService;
import com.hengpeng.itfin.sms.SmsSendService;

/**
 * <pre>
 * 业务服务接口工厂实现
 * </pre>
 * 
 * @author linriqing
 * @version 1.0, 2010-6-29
 */
@Service("serviceFactory")
public class ServiceFactoryImpl implements ServiceFactory, ApplicationContextAware {
    private ApplicationContext applicationContext;

    @Autowired
    private PersistService jdbcPersistService;

    @Autowired
    private DaoFactory daoFactory;

    @Autowired
    public EhchaceObservableService ehchaceObservableService;

    @Autowired
    public EhchaceService ehchaceService;

    @Autowired
    private PersistService persistService;

    @Autowired
    private SequenceService sequenceService;

    @Autowired
    private SmsSendService smsSendService;

    @Autowired
    private SmsService smsService;

    @Autowired
    private SystemJobService systemJobService;

    @Autowired
    private AccountService accountService;

    @Autowired
    private MessageService messageService;

    @Autowired
    private ActivityService activityService;

    @Autowired
    private RedPacketService redPacketService;

    @Autowired
    private RebateService rebateService;

    @Autowired
    @Qualifier("portFactoryImpl")
    private PortFactory protFactory;

    @Override
    public PortFactory getProtFactory() {
        return protFactory;
    }

    @Override
    public MessageService getMessageService() {
        return messageService;
    }

    @Override
    public ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    public DaoFactory getDaoFactory() {
        return daoFactory;
    }

    public EhchaceObservableService getEhchaceObservableService() {
        return ehchaceObservableService;
    }

    public EhchaceService getEhchaceService() {
        return ehchaceService;
    }

    public PersistService getPersistService() {
        return persistService;
    }

    public SequenceService getSequenceService() {
        return sequenceService;
    }

    public SmsSendService getSmsSendService() {
        return smsSendService;
    }

    @Override
    public SmsService getSmsService() {
        return smsService;
    }

    @Override
    public SystemJobService getSystemJobService() {
        return systemJobService;
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    @Override
    public PersistService getJdbcPersistService() {
        return jdbcPersistService;
    }

    @Override
    public AccountService getAccountService() {
        return accountService;
    }

    @Override
    public ActivityService getActivityService() {
        return activityService;
    }

    @Override
    public RedPacketService getRedPacketService() {
        return redPacketService;
    }

    @Override
    public RebateService getRebateService() {
        return rebateService;
    }

}
